package att_java ;

/**
 * Définit une TDC (Table des Classe).
 */
public class TDC extends TDS<INFO_CLASSE> {

	public TDC ( ) {
		
		super() ;
		
	}
	
	public TDC (TDC parente) {
		
		super(parente) ;
		
	}
	
	public String toString ( ) {
		
		return this.toString("") ;
		
	}
	
	public void inserer (INFO_CLASSE classe) {
		
		super.inserer(classe) ;
		
	}
	
	public int getTailleTV ( ) {
		
		int taille_tv = 0 ;
		
		for (INFO_CLASSE classe : this.table) {
			taille_tv = taille_tv + classe.getTailleTV() ;
		}
		
		return taille_tv ;
		
	}
	
	public int getDeplacementSuivant ( ) {
		
		return this.getTailleTV() ;
		
	}
	
	public boolean isType (String type, String type_cible) {
		
		boolean ret ;
		
		if (type.equals(type_cible)) {
			ret = true ;
		} else if (type_cible.equals("int")) {
			ret = false ;
		} else if (type_cible.equals("bool")) {
			ret = false ;
		} else {
			
			INFO_CLASSE info_type = this.chercher(type) ;
			
			if (info_type.parente == null) {
				ret = false ;
			} else {
				ret = this.isType(info_type.parente.getNom(), type_cible) ;
			}
			
		}
		
		return ret ;
	}
	
	public String toString (String prefix) {
		
		return prefix + "TDC:" + "\n" + super.toString(prefix) ;
		
	}
	
}
